package com.fantastic.service.zjs;

import com.fantastic.model.pojo.zjs.TreeTableData;
import com.fantastic.model.pojo.zjs.VarietySpecs;
import com.fantastic.model.vo.zjs.SpecsTypeVo;
import com.fantastic.model.vo.zjs.VarietySpecsVo;

import java.util.List;

/**
 * @author: rxx
 * @since: 2024/5/31 09:52
 * @description: 菜品信息和菜品规格信息关联表service接口
 */

public interface VarietySpecsService {
    /**
     * 查询
     * 无条件时是查询全部的分页查询
     * 有条件时是查询条件的分页查询
     *
     * @param varietySpecs
     * @return
     */
    List<VarietySpecs> listVarietySpecs(VarietySpecs varietySpecs);

    /**
     * 查询单个菜品信息和菜品规格信息关联表信息
     * 通过菜品id和菜品规格信息id 查询变动价格
     *
     * @param varietyId 菜品信息id
     * @param specId    菜品规格信息
     * @return
     */
    VarietySpecs getVarietySpecs(Integer varietyId, Integer specId);

    /**
     * 查询单个菜品信息和多个规格的关联信息
     *
     * @param varietyId
     * @return
     */
    List<VarietySpecsVo> listVarietySpecsVo(Integer varietyId);

    /**
     * 查询所有的菜品规格类型和其类型下的具体规格
     *
     * @return
     */
    List<TreeTableData> listSpecsType();

    /**
     * 添加菜品信息和菜品规格信息关联表信息
     *
     * @param varietySpecs
     * @return
     */
    Integer insertVarietySpecs(VarietySpecs varietySpecs);

    /**
     * 批量添加菜品信息和菜品规格信息关联表信息
     *
     * @param varietySpecs
     * @return
     */
    Integer addsVarietySpecs(List<VarietySpecs> varietySpecs);

    /**
     * 修改菜品信息和菜品规格信息关联表信息
     *
     * @param varietySpecs
     * @return
     */
    Integer updateVarietySpecs(VarietySpecs varietySpecs);

    /**
     * 删除菜品信息和菜品规格信息关联表信息
     *
     * @param specId
     * @return
     */
    Integer deleteVarietySpecs(Integer varietyId, Integer specId);

    /**
     * 批量删除菜品信息和菜品规格信息关联表信息
     * @param varietyId
     * @param specId
     * @return
     */
    Integer deletesVarietySpecs(Integer[] varietyId, Integer[] specId);

}
